package ComoViajo;

import java.math.BigDecimal;
import java.util.Iterator;

public class RecorridoTren extends Recorrido {

	/**
	 * @return costo de viaje en tren
	 * @author eugenio fede
	 */
	public BigDecimal getCosto() {

		if (this.estaciones.size() <= 5) {
			// recorre hasta 5 estaciones
			return new BigDecimal("0.85");
		} else if (this.estaciones.size() <= 8) {
			// recorre hasta 8 estaciones
			return new BigDecimal("1.10");
		}

		// mas de 8 estaciones
		return new BigDecimal("1.40");

	}

	/**
	 * @return costo de viaje en tren
	 */
	public int getTiempo() {
		// tiempo de tren 3 minutos por estacion
		return 3 * this.estaciones.size();
	}

	public int getTiempoTransbordo(Recorrido recorridoPrevio) throws ComoViajeException {
		if(recorridoPrevio.getClass().equals(this.getClass())){
			return 6;
		}else if(recorridoPrevio.getClassName().equals("RecorridoSubte")){
			return 5;
		}else{
			throw new ComoViajeException();
		}
	}
	
	/**
	 * una copia de los datos del recorrido
	 */
	public Recorrido getCopia() {
		RecorridoTren copia=new RecorridoTren();
		Iterator<Estacion> estacionesIterator=this.estaciones.iterator();
		
		Estacion unaEstacion;
		
		while(estacionesIterator.hasNext()){
			unaEstacion=estacionesIterator.next();
			copia.estaciones.add(unaEstacion);
		}
		
		return copia;
	}
}
